class Q{
    void fun(){
        System.out.println("Q.fun()");
    }
}
class P{
    void fun(Q q){
        q.fun();
        System.out.println("P.fun()");
    }
}
public class TestException {
    static Q q;//q仅是一个引用变量，并没有指向一个Q类型的实例  修改为： static Q q=new Q();
    public static void main(String[] args) {
        int d=10;
        int a=0;
        try{
            a=d/a;
            System.out.println("a="+a); 
        }catch(Exception e){
            //e.printStackTrace();
            a=-1;
        }
        finally{
            System.out.println("a="+a); 
        }

        try {
            Thread.sleep(2000);
        } catch (InterruptedException e) {
            System.out.println("线程睡眠异常");
        }
        
        System.out.println("end...");
        P p=new P();
        p.fun(q);
    }
}
